PrintDialog এবং PrintDocument ব্যবহার

Microsoft Technologies - ডব্লিউপিএফ (WPF) - WPF Printing এবং Print Preview Implementation
228

WPF (Windows Presentation Foundation) এ PrintDialog এবং PrintDocument ব্যবহার করে সহজেই ডকুমেন্ট প্রিন্ট করা যায়। এই দুটি কন্ট্রোল আপনাকে উইন্ডোজ প্রিন্টিং ফাংশনালিটি এক্সপোজ করতে সহায়তা করে, যা ব্যবহারকারীকে প্রিন্ট অপশন সিলেক্ট করতে এবং ডকুমেন্ট প্রিন্ট করার কাজটি সম্পাদন করতে দেয়।

PrintDialog

PrintDialog হল একটি ডায়ালগ বক্স যা ব্যবহারকারীকে প্রিন্টার নির্বাচন, কপির সংখ্যা, এবং অন্যান্য প্রিন্ট সেটিংস কনফিগার করার জন্য উপযুক্ত। আপনি PrintDialog ব্যবহার করে একটি প্রিন্টিং অপারেশন শুরু করতে পারেন।

PrintDialog এর বৈশিষ্ট্য:

  • Printer Selection: এটি ব্যবহারকারীকে প্রিন্টারের তালিকা প্রদর্শন করতে সাহায্য করে।
  • Custom Print Settings: ব্যবহারকারীকে কাস্টম সেটিংস যেমন পৃষ্ঠা সংখ্যা, কপির সংখ্যা, পেপার সাইজ নির্বাচন করার সুযোগ দেয়।

PrintDocument

PrintDocument হল একটি ক্লাস যা প্রিন্টিং এর জন্য ডকুমেন্ট প্রক্রিয়া করে। এটি ডকুমেন্টের বিভিন্ন অংশ (যেমন পেজ) প্রিন্ট করার জন্য ব্যবহৃত হয়। PrintDocument তে প্রিন্টিং ইভেন্টগুলি যেমন PrintPage ইভেন্ট ব্যবহৃত হয়, যা একে একে পৃষ্ঠার কনটেন্ট প্রিন্ট করতে সাহায্য করে।


Step-by-Step: PrintDialog এবং PrintDocument ব্যবহার করা

1. PrintDialog ব্যবহার করা

প্রথমে, PrintDialog কন্ট্রোল ব্যবহার করে ব্যবহারকারীকে প্রিন্ট অপশন দেখানো হয়।

<Window x:Class="WPFApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Print Example" Height="350" Width="525">
    <Grid>
        <Button Content="Print" HorizontalAlignment="Center" VerticalAlignment="Center" Click="PrintButton_Click"/>
    </Grid>
</Window>

C# Code:

private void PrintButton_Click(object sender, RoutedEventArgs e)
{
    PrintDialog printDialog = new PrintDialog();

    // Check if the user has selected a printer and clicked 'Print'
    if (printDialog.ShowDialog() == true)
    {
        // Use PrintDocument to print content
        printDialog.PrintDocument(((IDocumentPaginatorSource)myDocument).DocumentPaginator, "Printing Document");
    }
}

ব্যাখ্যা:

  • এখানে PrintDialog কন্ট্রোল ব্যবহার করা হয়েছে, যা প্রিন্টার নির্বাচন এবং প্রিন্ট সেটিংস কনফিগার করতে সাহায্য করে।
  • ShowDialog() মেথড ব্যবহার করে ডায়ালগটি প্রদর্শন করা হয়।
  • যদি ব্যবহারকারী 'Print' ক্লিক করেন, তাহলে PrintDocument ব্যবহার করে ডকুমেন্টটি প্রিন্ট করা হয়।

2. PrintDocument ব্যবহার করা

PrintDocument কন্ট্রোলটি একাধিক পৃষ্ঠার কন্টেন্ট প্রিন্ট করার জন্য ব্যবহৃত হয়। এটি পৃষ্ঠার প্রতিটি অংশ PrintPage ইভেন্টে ড্র করে।

private void PrintButton_Click(object sender, RoutedEventArgs e)
{
    PrintDialog printDialog = new PrintDialog();

    // Check if the user has selected a printer and clicked 'Print'
    if (printDialog.ShowDialog() == true)
    {
        // Create PrintDocument
        PrintDocument printDocument = new PrintDocument();
        
        // Handle the PrintPage event
        printDocument.PrintPage += PrintDocument_PrintPage;

        // Use PrintDialog to print the document
        printDialog.PrintDocument(printDocument.DocumentPaginator, "Document Print");
    }
}

private void PrintDocument_PrintPage(object sender, PrintPageEventArgs e)
{
    // Define the content to print on the page
    string content = "Hello, this is a printed page!";
    
    // Draw the content on the printed page
    e.Graphics.DrawString(content, new Font("Arial", 12), Brushes.Black, 100, 100);
    
    // Indicate that the printing is complete
    e.HasMorePages = false;  // Set to true for multiple pages
}

ব্যাখ্যা:

  • PrintDialog কন্ট্রোলের মাধ্যমে ব্যবহারকারীকে প্রিন্টার এবং কাস্টম সেটিংস নির্বাচন করার সুযোগ দেওয়া হয়।
  • PrintDocument অবজেক্ট তৈরি করা হয় এবং PrintPage ইভেন্টে ডকুমেন্টের কন্টেন্ট নির্দিষ্ট করা হয়।
  • e.Graphics.DrawString মেথড ব্যবহার করে পৃষ্ঠায় টেক্সট বা কন্টেন্ট প্রিন্ট করা হয়।
  • e.HasMorePages প্রপার্টি ব্যবহার করে একাধিক পৃষ্ঠা প্রিন্ট করার কনফিগারেশন করা হয়।

Additional Features in PrintDialog and PrintDocument

  1. Setting Print Preferences: আপনি PrintDialog কন্ট্রোলের PrintTicket প্রপার্টি ব্যবহার করে কাস্টম প্রিন্ট সেটিংস নির্ধারণ করতে পারেন, যেমন পৃষ্ঠা সাইজ, পেপার টাইপ, ইত্যাদি।
  2. Handling Multiple Pages: PrintDocument তে HasMorePages প্রপার্টি ব্যবহার করে আপনি একাধিক পৃষ্ঠা প্রিন্ট করার জন্য পৃষ্ঠার সংখ্যা নির্ধারণ করতে পারেন। যদি HasMorePages কে true সেট করা হয়, তাহলে PrintPage ইভেন্টটি আবার ট্রিগার হবে।
  3. Printing Images: আপনি PrintDocument এর মাধ্যমে ইমেজও প্রিন্ট করতে পারেন। উদাহরণস্বরূপ, e.Graphics.DrawImage() মেথড ব্যবহার করে ইমেজ প্রিন্ট করা যায়।
private void PrintDocument_PrintPage(object sender, PrintPageEventArgs e)
{
    Image img = Image.FromFile("path/to/image.jpg");
    e.Graphics.DrawImage(img, new Point(100, 100));
    e.HasMorePages = false;
}
  1. Print Preview: WPF তে PrintPreview সরাসরি সাপোর্ট করে না, তবে আপনি DocumentPaginator এবং Visuals ব্যবহার করে কাস্টম প্রিভিউ তৈরি করতে পারেন। আপনি PrintPreviewDialog ব্যবহার করে ডকুমেন্টের প্রিভিউ দেখাতে পারেন।

Conclusion

PrintDialog এবং PrintDocument WPF এ প্রিন্টিংয়ের জন্য খুবই শক্তিশালী এবং নমনীয় টুলস। PrintDialog ব্যবহার করে ব্যবহারকারীদের প্রিন্ট সেটিংস নির্বাচন করতে এবং PrintDocument এর মাধ্যমে পৃষ্ঠার কন্টেন্ট প্রিন্ট করতে সক্ষম। আপনি ডকুমেন্টের পৃষ্ঠার কন্টেন্ট কাস্টমাইজ করতে PrintPage ইভেন্ট ব্যবহার করতে পারেন, যা বিভিন্ন ধরনের ডকুমেন্ট প্রিন্টিংয়ের কাজকে সহজ করে তোলে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...